#pragma once
#include <list>
#include "EpilCodeBase.h"
#include "TCharSupport.h"

using namespace std;


class EpilFunctionNameCode : public EpilCodeBase
{
	EPIL_CODE_DECL( FunctionName );

public:
	EpilFunctionNameCode( const EpilLexLocation & location );
	virtual ~EpilFunctionNameCode();

	list<tstring> &						GetTableNames()									{ return m_tableNames; }
	const list<tstring> &				GetTableNames() const							{ return m_tableNames; }
	void								SetTableNames( const list<tstring> & names )	{ m_tableNames = names; }
	tstring								GetName() const									{ return m_name; }
	void								SetName( const tstring & name )					{ m_name = name; }
	bool								IsMethod() const								{ return m_isMethod; }
	void								SetMethod( bool isMethod )						{ m_isMethod = isMethod; }

	virtual tstring						ToEpilCode( int indent = 0 ) const;

private:
	tstring								m_name;
	list<tstring>						m_tableNames;
	bool								m_isMethod;
};